# 招商银行银企直联国密免前置/SaaS对接示例，本示例仅供参考，不保证各种异常场景运行，请勿直接使用，如有错漏请联系对接人员。运行时，请使用所获取的测试资源替换 用户编号、公私钥、对称密钥、服务商编号等信息。

import random
from datetime import datetime

import api

# 测试地址，生产需要替换
url = "http://cdctest.cmburl.cn:80/cdcserver/api/v2"
# 生产地址
# url = "https://cdc.cmbchina.com/cdcserver/api/v2"
# 银行公钥
bank_public_key = "BNsIe9U0x8IeSe4h/dxUzVEz9pie0hDSfMRINRXc7s1UIXfkExnYECF4QqJ2SnHxLv3z/99gsfDQrQ6dzN5lZj0="
# 客户私钥，生产需要替换
private_key = "NBtl7WnuUtA2v5FaebEkU0/Jj1IodLGT6lQqwkzmd2E="
# 客户公钥，生产需要替换
public_key = 'BGN0+JR7IIs/KKLfrseFEPhYvButN/A4uVkDl1yWNr64WWU/sUVyfQLWXNaPICq8L/k+7OpHex3IH09lBiG4np0='
# 对称密钥，生产需要替换
sym_key = b'VuAzSWQhsoNqzn0K'

# 企业网银用户号，生产需要替换
uid = 'N002466676'
# 平台编号，生产需要替换
plat_name = 'ELABOUR'
# 平台密钥，生产需要替换
saas_private_key = 'hTnMeeaZOaJ7vwGH2Az/2ZEDnHKxRtmTgQkCWOHW7DE='
# 平台公钥，生产需要替换
saas_public_key = 'BElP3O+GLwZEcCS1vcmWQtaFT2+GZgNRFRFeFv5BnMtaJNHkZGp8UhLmi0OLHvk+szriGTi31pzj7jYvY6+4Dbk='

# 业务接口名，这里是查询业务模式接口，生产请替换为对应接口名
funcode = 'DCLISMOD'
# 准备接口数据，生产请替换为具体接口请求报文,包含所需的请求字段
current_datetime = datetime.now().strftime("%Y%m%d%H%M%S")
reqid = datetime.now().strftime("%Y%m%d%H%M%S%f")[:-3] + str(random.randint(1000000, 9999999))
data = "{\"request\":{\"body\":{\"buscod\":\"N02030\"},\"head\":{\"funcode\":\"" + funcode + "\",\"userid\":\"" + uid + "\",\"reqid" + "\":\"" + reqid + "\"}},\"signature\":{\"sigdat\":\"__signature_sigdat__\",\"sigtim\":\"" + current_datetime + "\"}}"

dchelper = api.DcHelperSaas(url, uid, private_key, public_key, bank_public_key, sym_key, plat_name,
                            saas_private_key, saas_public_key)
response = dchelper.send_request(data, funcode)
print('Saas请求1成功,响应报文: \r\n' + response)
response = dchelper.send_request(data, funcode)
print('Saas请求2成功,响应报文: \r\n' + response)
